/**
 * 统一接口返回结果
 * @interface UnifyResult
 */
export interface UnifyResult<T> extends Promise<T> {
  /**
   *
   * @type {number}
   */
  statusCode?: number;
  /**
   *
   * @type {T}
   */
  data?: T | any;
  /**
   *
   * @type {boolean}
   */
  succeeded?: boolean;
  /**
   *
   * @type {any}
   */
  errors?: any | null;
  /**
   *
   * @type {any}
   */
  extras?: any | null;
  /**
   *
   * @type {number}
   */
  timestamp?: number;
}

export interface SqlSugarPagedList<T> {
  /**
   * 总记录数
   * @type {number}
   */
  totalCount?: number;
  /**
   * 页码
   * @type {number}
   */
  pageIndex?: number;
  /**
   * 页码大小
   * @type {number}
   */
  pageSize?: number;
  /**
   * 总页数
   * @type {number}
   */
  totalPages?: number;
  /**
   * 是否有上一页
   * @type {boolean}
   */
  hasPrevPage?: boolean;
  /**
   * 是否有下一页
   * @type {boolean}
   */
  hasNextPage?: boolean;
  /**
   * 当前页集合
   * @type {Array<T>}
   */
  items?: Array<T>;
}

export interface PagedList<T> {
  /**
   * 总记录数
   * @type {number}
   */
  totalCount?: number;
  /**
   * 页码
   * @type {number}
   */
  pageIndex?: number;
  /**
   * 页码大小
   * @type {number}
   */
  pageSize?: number;
  /**
   * 总页数
   * @type {number}
   */
  totalPages?: number;
  /**
   * 当前页集合
   * @type {Array<T>}
   */
  items?: Array<T>;
}
